package Persistencia;

import proyecto.controller.BasedeDatos;
import Controlador.SingletonUsuario;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class OperacionesBaseDatos {
    private Connection con; //Apuntador a la conexion
    private Statement stat; //Constituye esa cadena que permite el acceso
    private BasedeDatos Cbd;


    public boolean conectar(){
        Cbd = BasedeDatos.crear_conexion();
        try{
            Class.forName(Cbd.getDriver());
            this.con = DriverManager.getConnection(Cbd.getConnectString(), Cbd.getUser(), Cbd.getPassword());
            this.stat = con.createStatement();
            return true;
        }
        catch(SQLException e){
            System.out.println("Error en la conexion..."+e.getMessage());
            return false;
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(OperacionesBaseDatos.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }
    
    public void cerrar_conexion(){
        try{
            stat.close();
            con.close();
            System.out.println("Se cerro la conexion a la base de datos...");
        }
        catch(SQLException e){
            System.out.println("Se presento un error en al conexion..."+e.getMessage());
        }
    }

    public boolean ConsultarUsuario(SingletonUsuario objUsuario) {
        try{
            conectar();
            ResultSet rs = stat.executeQuery("SELECT * FROM usuario WHERE correo = '"+objUsuario.getCorreo()+"' and contrasena = '"+objUsuario.getContraseña()+"'");
            while(rs.next()){
                objUsuario.setEstado(true);
            }
            return true;
        }
        catch(Exception e){
            System.out.println("Se presento un error en la ConsultarUsuario..."+e.getMessage());
            return false;
        }
    }
}